import { NextRequest, NextResponse } from 'next/server';
import { UserModel } from '@/models/user';

// GET /api/profile/awards - 获取用户的获奖情况
export async function GET(req: NextRequest) {
  try {
    // 从请求头获取token并验证用户身份
    const authHeader = req.headers.get('authorization');
    
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      return NextResponse.json(
        { message: '未授权访问' },
        { status: 401 }
      );
    }
    
    const token = authHeader.split(' ')[1];
    
    // 简单token验证（实际项目中应使用JWT验证）
    // 此处假设token中包含用户ID
    // 从token中解析出用户ID（这里示例使用简化的方法）
    let userId;
    try {
      // 解析JWT token（这里使用简化的方法）
      const payload = JSON.parse(atob(token.split('.')[1]));
      userId = payload.id;
      
      if (!userId) {
        return NextResponse.json(
          { message: '无效的用户凭证' },
          { status: 401 }
        );
      }
    } catch (e) {
      console.error('解析token失败:', e);
      return NextResponse.json(
        { message: '无效的用户凭证' },
        { status: 401 }
      );
    }
    
    // 获取用户的获奖情况
    const awards = await UserModel.getAwards(userId);
    
    return NextResponse.json(
      awards,
      { status: 200 }
    );
  } catch (error: any) {
    console.error('获取获奖情况时出错:', error);
    
    return NextResponse.json(
      { message: '获取获奖情况失败', error: error.message },
      { status: 500 }
    );
  }
}

// POST /api/profile/awards - 添加新的获奖情况
export async function POST(req: NextRequest) {
  try {
    // 从请求头获取token并验证用户身份
    const authHeader = req.headers.get('authorization');
    
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      return NextResponse.json(
        { message: '未授权访问' },
        { status: 401 }
      );
    }
    
    const token = authHeader.split(' ')[1];
    
    // 简单token验证，解析出用户ID
    let userId;
    try {
      // 解析JWT token（这里使用简化的方法）
      const payload = JSON.parse(atob(token.split('.')[1]));
      userId = payload.id;
      
      if (!userId) {
        return NextResponse.json(
          { message: '无效的用户凭证' },
          { status: 401 }
        );
      }
    } catch (e) {
      console.error('解析token失败:', e);
      return NextResponse.json(
        { message: '无效的用户凭证' },
        { status: 401 }
      );
    }
    
    // 解析请求体
    const body = await req.json();
    
    // 验证必需字段
    if (!body.name || !body.issuer || !body.date) {
      return NextResponse.json(
        { message: '缺少必要字段' },
        { status: 400 }
      );
    }
    
    // 准备数据
    const awardData = {
      user_id: userId,
      name: body.name,
      issuer: body.issuer,
      date: body.date,
      description: body.description || null
    };
    
    // 添加新的获奖情况
    const awardId = await UserModel.addAward(awardData);
    
    // 获取新添加的获奖情况详情
    const newAward = {
      id: awardId,
      ...awardData
    };
    
    return NextResponse.json(
      newAward,
      { status: 201 }
    );
  } catch (error: any) {
    console.error('添加获奖情况时出错:', error);
    
    return NextResponse.json(
      { message: '添加获奖情况失败', error: error.message },
      { status: 500 }
    );
  }
} 